home *** CD-ROM | disk | FTP | other *** search
/ Cre@te Online 2000 December / Cre@teOnline CD05.iso / MacSoft / XML ConsoleMax.sea / XML ConsoleMax / Required / esc.jar / com / extensibility / xml / AuditTrail.class (.txt) < prev    next >
Encoding:
Java Class File  |  2000-06-30  |  2.4 KB  |  72 lines

  1. package com.extensibility.xml;
  2.  
  3. import com.extensibility.util.Debug;
  4. import java.text.MessageFormat;
  5. import java.util.Date;
  6. import java.util.Enumeration;
  7. import java.util.Hashtable;
  8.  
  9. public class AuditTrail {
  10.    public static final int NO_CHANGE = 0;
  11.    public static final int INSERTED = 1;
  12.    public static final int UPDATED = 2;
  13.    public static final int REMOVED = 3;
  14.    Hashtable originals = new Hashtable();
  15.  
  16.    public void setup(Enumeration var1) {
  17.       if (this.originals.size() > 0) {
  18.          this.originals = new Hashtable();
  19.       }
  20.  
  21.       while(var1.hasMoreElements()) {
  22.          BaseDeclaration var2 = (BaseDeclaration)var1.nextElement();
  23.          this.originals.put(var2, var2.getSource());
  24.       }
  25.  
  26.    }
  27.  
  28.    public DeclChange getChange(BaseDeclaration var1) {
  29.       DeclChange var2 = new DeclChange((AuditTrail)null);
  30.       var2.orgSource = (String)this.originals.get(var1);
  31.       if (var2.orgSource == null) {
  32.          var2.type = 1;
  33.       } else if (var2.orgSource.equals(var1.getSource())) {
  34.          var2.type = 0;
  35.       } else {
  36.          var2.type = 2;
  37.       }
  38.  
  39.       return var2;
  40.    }
  41.  
  42.    public String getChange(BaseDeclaration var1, String var2, String var3, String var4) {
  43.       DeclChange var5 = this.getChange(var1);
  44.       if (var5.type == 0) {
  45.          return null;
  46.       } else {
  47.          Object[] var7 = new Object[]{new Date(), var5.orgSource};
  48.          if (var5.type == 1) {
  49.             return (new MessageFormat(var2)).format(var7);
  50.          } else if (var5.type == 2) {
  51.             return (new MessageFormat(var3)).format(var7);
  52.          } else if (var5.type == 3) {
  53.             return (new MessageFormat(var4)).format(var7);
  54.          } else {
  55.             Debug.assert(false, "unknown change type");
  56.             return null;
  57.          }
  58.       }
  59.    }
  60.  
  61.    public void logChanges(Enumeration var1, String var2, String var3, String var4) {
  62.       while(var1.hasMoreElements()) {
  63.          BaseDeclaration var5 = (BaseDeclaration)var1.nextElement();
  64.          String var6 = this.getChange(var5, var2, var3, var4);
  65.          if (var6 != null) {
  66.             var5.addComment(new Comment("CHANGES", var6));
  67.          }
  68.       }
  69.  
  70.    }
  71. }
  72.